/**
 *
 */
package com.tank.game.api;

import java.util.List;
import java.util.function.Predicate;

/**
 * 子弹库
 *  - 生产子弹的仓储
 *
 * @author Zed
 *
 */
public interface BulletCollection {

    /**
     * 所有Table
     * @return {@link List}
     */
    List<Bullet> getBullets();

    /**
     * 满足{@code filter}的首个Bullet
     * @param filter {@link Predicate}, 过滤条件
     * @return {@link Bullet},可能返回null.
     */
    Bullet findBullet(Predicate<Bullet> filter);

    /**
     * 所有满足{@code filter}的Bullet
     * @param filter {@link Predicate},过滤器
     * @return {@link Bullet}列表
     */
    List<Bullet> getBullets(Predicate<Bullet> filter);

}
